//通过接口文档得知,前一部分url地址相同,所以将它用一变量保存起来
let baseUrl = 'http://localhost:8080/api/v1';

//1.0 ajax请求参数是对象数据类型
function obj_ajax(type, url, data, callBlack) {
    $.ajax({
        url: baseUrl + url,
        type: type,
        data: data,
        //负责设置请求头信息
        // headers: {
        //     //将登陆接口获取到的token通过authorization发送给服务器
        //     'Authorization': sessionStorage.getItem('bigNewsToken')
        // },
        success: function(resData) {
            //判断服务器响应回来的数据是否登录,如果没有则跳转回登录页
            // if (resData.code == 403) {
            //     window.parent.location = 'login.html'
            //         // window.parent.location = '../admin/login.html' 或者window.parent.location = './login.html'
            //     return;
            // }
            callBlack(resData)

        }
    })
}

//2.0 ajax请求参数是formdata数据类型
function formdata_ajax(type, url, data, callBlack) {
    $.ajax({
        url: baseUrl + url,
        type: type,
        data: data,
        //图片文件上传固定代码
        contentType: false,
        processData: false,
        //负责设置请求头信息
        // headers: {
        //     //将登陆接口获取到的token通过authorization发送给服务器
        //     'Authorization': sessionStorage.getItem('bigNewsToken')
        // },
        success: function(resData) {
            //判断服务器响应回来的数据是否登录,如果没有则跳转回登录页
            // if (resData.code == 403) {
            //     window.parent.location = 'login.html'
            //         // window.parent.location = '../admin/login.html' 或者window.parent.location = './login.html'
            //     return;
            // }
            callBlack(resData)

        }
    })
}

//由于ajax请求参数有formdata数据类型(图片文件上传时用formdata)和对象数据类型,对他们数据类型对应的ajax方法进行合并,方便调用

function myAjax(type, url, data, callBlack) {
    /* 正因为typeof遇到null,数组,对象时都会返回object类型，所以当我们要判断一个对象是否是数组时或者判断某个变量是否是某个对象的实例则要选择使用另一个关键语法instanceof，instanceof返回的是一个布尔值;需要注意的是，instanceof只能用来判断对象和函数，不能用来判断字符串和数字等 ;instanceof也可以检测对象的原型链是否指向构造函数的prototype对象的*/
    //  判断data参数是否是一个formdata类型的数据
    // instanceof 表示判断data参数是否是一个FormData对象
    // 如果是则为true，否则为false
    let isformData = data instanceof FormData;

    if (isformData) {
        formdata_ajax(type, url, data, callback)
    } else {
        obj_ajax(type, url, data, callback)
    }

}